/**
* @file DebugOutput.h 
* @Description: DebugOutput 日志输出重定向 控制类主要用于日志的重定向输出（文件 or stdrr）
* @Date: 2020-02-26
* @LastEditTime: 2020-02-26
* @LastEditors: twosilly
* @Author: twosilly
* @E-Mail:twosilly@foxmail.com
*/

#ifndef DEBUGOUTPUT_H
#define DEBUGOUTPUT_H
#include <QDebug>
#include <QDir>
#include <QFile>
#include <QDateTime>
namespace Logger {

//!日志输出位置
enum Flag
{
    OUTPUT_FILE = 0x00000001,//!输出为文件
    OUTPUT_STDERR = 0x00000002,//!输出到控制台
    OUTPUT_FILEANDSTDERR = OUTPUT_FILE|OUTPUT_STDERR//!同时输出到控制台和文件
};
enum logger_level
{
    OFF      = 0x00000000,//!关闭日志输出
    DEBUG    = 0x00000001,//!只输出Debug信息
    INFO     = 0x00000002,//!输出info         00010
    WARN     = 0x00000004,//!只输出warning    00100  
    CRITICAL = 0x00000008,//!输出 挑选            01000
    FATAL    = 0x00000010,//!输出致命错误         10000
    ALL      = DEBUG|INFO|WARN|FATAL|CRITICAL //!全部输出  11111
   
};
void setDebugOutput(const QString &rawTargetFilePath_, const bool &argDateFlag_=true,const Flag flag=Flag::OUTPUT_FILEANDSTDERR,const logger_level levl=logger_level::WARN,bool more=true);


} // namespace Logger

#endif // DEBUGOUTPUT_H
